using System.Collections;
using System.Collections.Generic;
using UnityEngine;

// Grappler类，用于处理角色的抓取动作
public class Grappler : MonoBehaviour
{
    // 主摄像机
    public Camera mainCamera;
    // 线渲染器，用于渲染抓取线
    public LineRenderer _lineRenderer;
    // 距离关节，用于处理抓取物体的物理效果
    public DistanceJoint2D _distanceJoint;

    void Start()
    {
        // 初始化时，禁用距离关节
        _distanceJoint.enabled = false;
    }

    void Update()
    {
        // 检测鼠标左键是否按下
        if (Input.GetKeyDown(KeyCode.Mouse0))
        {
            // 获取鼠标在世界坐标中的位置
            Vector2 mousePos = (Vector2)mainCamera.ScreenToWorldPoint(Input.mousePosition);
            // 设置线渲染器的起始和结束位置
            _lineRenderer.SetPosition(0, mousePos);
            _lineRenderer.SetPosition(1, transform.position);
            // 设置距离关节的连接点
            _distanceJoint.connectedAnchor = mousePos;
            // 启用距离关节和线渲染器
            _distanceJoint.enabled = true;
            _lineRenderer.enabled = true;
        }
        // 检测鼠标左键是否松开
        else if (Input.GetKeyUp(KeyCode.Mouse0))
        {
            // 禁用距离关节和线渲染器
            _distanceJoint.enabled = false;
            _lineRenderer.enabled = false;
        }
        // 如果距离关节启用
        if (_distanceJoint.enabled)
        {
            // 更新线渲染器的结束位置
            _lineRenderer.SetPosition(1, transform.position);
        }
    }
}
